﻿using System;
namespace Producers.Kis.Xtee.Riik.Ee.Producer.Kis {
    
    
    public partial class Organisation : global::Producers.Kis.Xtee.Riik.Ee.Producer.Kis.IOrganisation {
        
        private global::Producers.Kis.Xtee.Riik.Ee.Producer.Kis.NonEmptyString @__registryCode;
        
        private global::Producers.Kis.Xtee.Riik.Ee.Producer.Kis.NonEmptyString @__name;
        
        private global::Producers.Kis.Xtee.Riik.Ee.Producer.Kis.NonEmptyString @__personalIDCode;
        
        private global::Producers.Kis.Xtee.Riik.Ee.Producer.Kis.OrganisationType @__type;
        
        public Organisation() {
        }
        
        /// <summary>
        /// All parameters
        /// </summary>
        public Organisation(global::Producers.Kis.Xtee.Riik.Ee.Producer.Kis.NonEmptyString @registryCode, global::Producers.Kis.Xtee.Riik.Ee.Producer.Kis.NonEmptyString @name, global::Producers.Kis.Xtee.Riik.Ee.Producer.Kis.NonEmptyString @personalIDCode, global::Producers.Kis.Xtee.Riik.Ee.Producer.Kis.OrganisationType @type) {
            this.@__registryCode = @registryCode;
            this.@__name = @name;
            this.@__personalIDCode = @personalIDCode;
            this.@__type = @type;
        }
        
        /// <summary>
        /// Required parameters
        /// </summary>
        public Organisation(global::Producers.Kis.Xtee.Riik.Ee.Producer.Kis.NonEmptyString @registryCode, global::Producers.Kis.Xtee.Riik.Ee.Producer.Kis.NonEmptyString @name) {
            this.@__registryCode = @registryCode;
            this.@__name = @name;
        }
        
        /// <summary>
        /// Copy Constructor
        /// </summary>
        protected Organisation(IOrganisation @organisation) {
            this.@__registryCode = @organisation.RegistryCode;
            this.@__name = @organisation.Name;
            this.@__personalIDCode = @organisation.PersonalIDCode;
            this.@__type = @organisation.Type;
        }
        
        public virtual global::Producers.Kis.Xtee.Riik.Ee.Producer.Kis.NonEmptyString RegistryCode {
            get {
                return this.@__registryCode;
            }
            set {
                this.@__registryCode = value;
            }
        }
        
        public virtual global::Producers.Kis.Xtee.Riik.Ee.Producer.Kis.NonEmptyString Name {
            get {
                return this.@__name;
            }
            set {
                this.@__name = value;
            }
        }
        
        public virtual global::Producers.Kis.Xtee.Riik.Ee.Producer.Kis.NonEmptyString PersonalIDCode {
            get {
                return this.@__personalIDCode;
            }
            set {
                this.@__personalIDCode = value;
            }
        }
        
        public virtual global::Producers.Kis.Xtee.Riik.Ee.Producer.Kis.OrganisationType Type {
            get {
                return this.@__type;
            }
            set {
                this.@__type = value;
            }
        }
    }
}
